System and method for intelligent polymorphism of user interface

ABSTRACT

Embodiments may be associated with a user interface design for an application. An intelligent user interface platform may collect user experience data associated with a user&#39;s interactions with the application over time (e.g., user actions, touchscreen interactions, computer mouse clicks, attention information, context information, etc.). The intelligent user interface platform may then analyze the user experience data (e.g., looking for most visited interface locations, most used actions, infrequently accessed functions, common user mistakes, etc.). The intelligent user interface platform may also automatically create a user interface design adjustment based on the analysis. For example, the user interface design adjustment might be associated with a menu item, a sub-menu item, an application action, an icon location, adding a display element, removing a display element, etc.

BACKGROUND

A user may utilize a computer application to perform tasks. Examples ofapplications include business information applications, word processingapplications, etc. Each application may have a “user interface” withvarious components that let the user perform tasks, access features,navigate the application, etc. Examples of such components includemenus, sub-menus, navigation panes, search boxes, button icons, etc.These user interface components might be arranged in a number ofdifferent ways to make certain tasks easier to perform, highlight aparticular functionality of the application, etc.

Traditionally, user interfaces are designed so as to target general andcommon uses cases (e.g., for the “average” user of the application).Despite this, applications may be used in many different ways bydifferent users, e.g. with a focus on various capabilities such aslearn, create, assemble, edit, export, and other manipulations.Designing different user interfaces for different types of user,however, requires substantial effort in production phases, includinguser experience testing, coding experiments, etc. to provide userinterfaces that are appropriate for all users, usages, and capabilities.Moreover, no user interface design will achieve 100% user satisfaction.Some users have unusual habits, new users may have differentexpectations, while other users will never learn about somefunctionalities, etc.

Some applications offer a powerful user interface customizationframework (e.g., Microsoft® OFFICE applications) but these are rarelyused. There are several reasons for this, including the fact that thecontrols are not easy to manipulate. The action mapping may be, forexample, too fine grain (e.g., cut, copy, . . . ). Also, users might notknow how to be well organized—should it depend on current activity?Should it take into consideration future usage situations? Many usersmay be afraid to detach their user interfaces from the default settings(e.g., wanting to avoid a high personal Total Cost of Ownership (“TCO”).

It would be desirable to provide user interface customization in anautomatic and appropriate manner.

SUMMARY

Methods and systems may be associated with a user interface design foran application. An intelligent user interface platform may collect userexperience data associated with a user's interactions with theapplication over time (e.g., user actions, touchscreen interactions,computer mouse clicks, attention information, context information,etc.). The intelligent user interface platform may then analyze the userexperience data (e.g., looking for most visited interface locations,most used actions, infrequently accessed functions, common usermistakes, etc.). The intelligent user interface platform may alsoautomatically create a user interface design adjustment based on theanalysis. For example, the user interface design adjustment might beassociated with a menu item, a sub-menu item, an application action, anicon location, adding a display element, removing a display element,etc.

Some embodiments comprise: means for collecting, by a computer processorof an intelligent user interface platform, user experience dataassociated with a user's interactions with the application over time;means for analyzing the user experience data; and means forautomatically creating a user interface design adjustment based on theanalysis.

Some technical advantages of some embodiments disclosed herein areimproved systems and methods to provide user interface customization inan automatic and appropriate manner.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B illustrate user interfaces according to someembodiments.

FIG. 2 is high-level diagram of an intelligent user interface system inaccordance with some embodiments.

FIG. 3 is an intelligent user interface method according to someembodiments.

FIG. 4 is a more detailed user interface polymorphism method inaccordance with some embodiments.

FIG. 5 is an intelligent user interface system according to someembodiments.

FIG. 6 is a display that illustrates user interface attention inaccordance with some embodiments.

FIGS. 7 through 9 illustrate user interface promotion and/or demotiontechniques according to some embodiments.

FIG. 10 is a more detailed user interface polymorphism system inaccordance with some embodiments.

FIG. 11 is another user interface polymorphism method according to someembodiments.

FIG. 12 is an apparatus or platform according to some embodiments.

FIG. 13 illustrates a user experience database in accordance with someembodiments.

FIG. 14 is an intelligent user interface display according to someembodiments.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of embodiments.However, it will be understood by those of ordinary skill in the artthat the embodiments may be practiced without these specific details. Inother instances, well-known methods, procedures, components and circuitshave not been described in detail so as not to obscure the embodiments.

One or more specific embodiments of the present invention will bedescribed below. In an effort to provide a concise description of theseembodiments, all features of an actual implementation may not bedescribed in the specification. It should be appreciated that in thedevelopment of any such actual implementation, as in any engineering ordesign project, numerous implementation-specific decisions must be madeto achieve the developers' specific goals, such as compliance withsystem-related and business-related constraints, which may vary from oneimplementation to another. Moreover, it should be appreciated that sucha development effort might be complex and time consuming, but wouldnevertheless be a routine undertaking of design, fabrication, andmanufacture for those of ordinary skill having the benefit of thisdisclosure.

A user may utilize a computer application to perform tasks. Examples ofapplications include business information applications, word processingapplications, etc. Each application may have a “user interface” withvarious components that let the user perform tasks, access features,navigate the application, etc. Examples of such components includemenus, sub-menus, navigation panes, search boxes, button icons, etc.FIGS. 1A and 1B illustrate user interfaces 100, 102 according to someembodiments. FIG. 1A shows a user interface 100 with a “toolbar” 110(e.g., including “File,” “Back,” “Insert,” etc.) that, when selected bya touchscreen or computer mouse pointer 120, may result a drop-down menu130 of options (e.g., “Save,” “Export,” “Print,” etc.). The interface100 further includes a “Setup” stand-alone button icon 190 that may bedirectly selected by the user. FIG. 1B shows a slightly modified userinterface 102 with “Print” being moved to a toolbar 112, “Back” beingmoved to a drop-down menu 132, and a “Help” stand-alone button icon 192that may be directly selected by the user. These user interfacecomponents might be arranged in a number of different ways to makecertain tasks easier to perform, highlight a particular functionality ofthe application, etc. Designing appropriate user interfaces fordifferent users, different types of users, different use cases, etc.,however, can be a time-consuming and expensive task.

Instead of targeting everyone and every usage with a single userexperience, embodiments described herein provide user interfacecustomization in an automatic and appropriate manner. In particular,some embodiments may avoid the “one size fits all” interface aspect oftraditional designs and lead to a custom-tailored user experience.Embodiments may comprise an intelligent system that is designed toprovide automatic customization of user interface via user interface“polymorphism.” As used herein, the term “polymorphism” may refer toitems that occur in several different forms.

FIG. 2 is a system 200 in accordance with some embodiments. Inparticular, an application user 210 may exchange user interactions withan application server 220 while using an application (e.g., buttonselections, mouse clicks, etc.). The system 200 includes an intelligentuser interface platform 250 that collects user experience data andstores the information in a collected data store 260. The intelligentuser interface platform 250 may analyze the information in the collecteddata store 260 and output an appropriate user interface designadjustment for the application user 210.

As used herein, devices, including those associated with the system 200and any other device described herein, may exchange information via anycommunication network which may be one or more of a Local Area Network(“LAN”), a Metropolitan Area Network (“MAN”), a Wide Area Network(“WAN”), a proprietary network, a Public Switched Telephone Network(“PSTN”), a Wireless Application Protocol (“WAP”) network, a Bluetoothnetwork, a wireless LAN network, and/or an Internet Protocol (“IP”)network such as the Internet, an intranet, or an extranet. Note that anydevices described herein may communicate via one or more suchcommunication networks.

The system 200 may store information into and/or retrieve informationfrom various data stores (e.g., the collected data store 260), which maybe locally stored or reside remote from the intelligent user interfaceplatform 250. Although a single intelligent user interface platform 250is shown in FIG. 2, any number of such devices may be included.Moreover, various devices described herein might be combined accordingto embodiments of the present invention. For example, in someembodiments, the intelligent user interface platform 250 and applicationserver 220 might comprise a single apparatus. The system 200 functionsmay be performed by a constellation of networked apparatuses, such as ina distributed processing or cloud-based architecture.

A user may access the system 200 via a remote device (e.g., a PersonalComputer (“PC”), tablet, or smartphone) to view information about and/ormanage operational information in accordance with any of the embodimentsdescribed herein. In some cases, an interactive graphical user interfacedisplay may let an operator or administrator define and/or adjustcertain parameters (e.g., to implement various rules and policies)and/or provide or receive automatically generated recommendations,alerts, or results from the system 200.

FIG. 3 is a method that might performed by some or all of the elementsof any embodiment described herein. The flow charts described herein donot imply a fixed order to the steps, and embodiments of the presentinvention may be practiced in any order that is practicable. Note thatany of the methods described herein may be performed by hardware,software, an automated script of commands, or any combination of theseapproaches. For example, a computer-readable storage medium may storethereon instructions that when executed by a machine result inperformance according to any of the embodiments described herein.

At S310, a computer processor of an intelligent user interface platformmay collect user experience data associated with a user's interactionswith the application over time. The user experience data might beassociated with, for example, user actions, touchscreen interactions,computer mouse clicks, attention information (e.g., a camera mightdetect “where the user is looking”), context information, a documenttype, user profile information (e.g., is the user a salesperson ormanager), a time and date (e.g., is it a weekend?), a location (e.g.,what country is the user in?), etc.

At S320, the system may analyze the user experience data. The analysismay be associated with, for example, the user's most visited interfacelocations, most used actions, infrequently accessed functions, commonuser mistakes, multiple users, multiple applications, etc. According tosome embodiments, the analysis is associated Artificial Intelligence(“AI” and/or Machine Learning (“ML”).

At S330, the system may automatically create a user interface designadjustment based on the analysis. The user interface design adjustmentmight be associated with, for example, menu item, a sub-menu item, anapplication action, an icon location, adding a display element, removinga display element, etc.

According to some embodiments, the system may watch user interactions,learn from those interactions, suggest improvements to the userinterface, and then continue to learn by watching future userinteractions. Such an approach may require analyzing the end user withhis/her agreement. Note that modern technics may be used to collect therequired data and knowledge that will be processed to lead to a betteradapted user interface. For example, during a first stage, the softwarecould be delivered with built-in “perspective” to better target aparticular type of application use, e.g., “What do you want to do withthis application?” Based on a user input/selection, a specializedperspective might be selected. Subsequently, based on an intelligentuser interface system, the software may warn the user about the captureof his or her usage, e.g., clicks, habits, regular ways of performingtasks, hesitations before taking certain tasks, etc.

FIG. 4 is a more detailed user interface polymorphism method inaccordance with some embodiments. At S410, the system may inform theuser about the intent to collect user interface data. For example, thefollowing message might be displayed: “Dear user, to improve andpersonalize your user experience, the current software will collect yourusage and will help you to master functionalities and will proposealternative graphical interfaces.” At S420, the system may begin togather information. For example, when an application is launched, thesystem may:

-   -   collect all important identifiers (e.g., context of usage,        document type, user profile information, date and other meta        data to classify further data),    -   in real time, the system may record all actions performed by the        user (e.g., menus, search questions/answers, moves, timestamps,        etc.), and    -   classify and store the data per user, per document, per date,        etc.

At S430, the system may then determine, in regards of a context: themost visited interface locations, the most used actions, less commonlyused functions, the user's regular mistakes, etc. At S440, after thesystem has collected, cleaned, and analyzed enough data, it may promptthe user and propose to them how to discover functionalities that he/shenever uses. At S450, after the data is sufficiently enriched, the systemmay propose alternatives to the user interface, such as adjustments tohide unused functionalities, sort actions per importance to make themmore accessible, etc. Other examples of user interface adjustmentsinclude: proposing to publish and share experiences with a softwareeditor; proposing to name and publish the user's experience to othercolleagues/teams in the community; and/or perform an optimization ofusage by detecting a usage pattern (e.g., “you should do X instead ofY”). In general, the system may propose any number of possibilitiesbased on an artificial intelligence analysis.

To improve the algorithm, the intelligent system may directly getfeedback about the proposed experience from the user at S460 (asillustrated by dashed lines in FIG. 4). For example, after proposing oneof the previous interface enhancements at S450, the system may ask forfeedback from the user, capture his or her answers, and improve the“proposition model” based on those answers. The system may interpretanswers and/or capture the “intent” of the user as well (to help weighfuture propositions).

With an intelligent user interface, the system may be based on real userexperiences and a continuous improvement process. Using modern technicsof machine learning, the system can learn from user actions andmistakes. In addition, the context of usage (profile, document type,etc.) may be important and can be considered for relevant suggestions.For example, FIG. 5 is an intelligent user interface system 500according to some embodiments. The system 500 includes an intelligentuser interface 550 that receives user experiences along with defaultweights for various interface components. The intelligent user interface550 automatically generates a new user interface and captures feedbackto adjust the default weights. In addition to data collection and dataclustering, the system 500 may provide an immediate return of experiencefrom the user which can be added to the system to evaluate the impact ofeach automatic decision. Even if the system is not accurate at thebeginning, in a specific context, it may be improved by user's feedbackabout previous propositions. Consider, for example, the followingexchange an intelligent user interface (IUI) and a user:

IUI: Did you like the new interface I suggested? Yes/No

User: “No.”

IUI: Between the three changes I made, which ones were wrong?

User: “The ‘Refresh’ button in the main page.”

IUI: I understand. I will fix that and come back with a new suggestion.

By using a learning mechanism, the system may detect user habits and, bydoing so, be able to recognize user intentions. As a result, accuratepropositions can be offered, such as “would you like to merge these twodatasets, like you did yesterday in your forecast document?” or “itseems you want to classify these data in a visualization, I suggest thatyou . . . ”.

Intelligent user interface embodiments may offer a “win-win” situationfor software editors. They may be able to deliver a product faster, witha best “generic” user interface. Later, thanks to the collected softwareusage and an intelligent UI system, the “generic” interface may beregularly improved based on concrete user interactions with the tool. Inaddition, the system may emphasize less used functionalities and/orhighlight new functionalities. In some embodiments, a user community canshare personalized usage patterns and/or interface via a centralizedrepository of settings for customized interfaces. The additionalinformation based on software usage may also ease future investments(enhancements, bug fixes, etc.) and help prioritize any backlog ofneeded improvements to an application.

Some embodiments may utilize a tracking of usage algorithm that uses aweight of areas approach and a machine learning algorithm to track useractivities. For example, FIG. 6 is a display 600 illustrates userinterface attention in accordance with some embodiments. The display 600includes a navigation toolbar 610, a sales information area 620, aprofit information area 630 and a “Search Portal” icon 690. The systemmay track a user's attention to various areas on the display 600, suchas the “Back” button 612 in the toolbar and a portion 632 of the profitarea 630 (by tracking movement of a computer mouse pointer 640, user eyemovements, etc.). Locations where the user interacts the most (612, 632)may be promoted in future adjustments that are automatically suggestedfor the display 600. That is, based on the user data, the intelligentuser interface may enrich its model and propose a brand-new interfacebased on this specific context.

Thus, embodiments may provide automatic customization of a userinterface by making with appropriate suggestions. Each element orworkflow of the user interface may have an initial default weight basedon usage assumptions from software editor. For example, Table I shows anexample of default user interface weight on a scale from 0 to 10 (with10 representing the most important components of the user interface).

TABLE I Default UI Weights Functions/Areas Weight Save Button 7/10Filter Button 5/10 Page Mode Button 4/10 Next Page 7/10 Search 3/10 HelpButton 6/10 Refresh 10/10 

According to these default weights, a software editor may organize thelayout of the components (e.g., buttons) that represent these actions.At runtime, these weights may be updated and evolve for each user andeach usage. For example, while using the software in a “consumption” or“authoring” mode, the numbers will evolve. Table II shows how thenumbers might evolve for a consumption use case.

TABLE II Consumption Use Case Functions/Areas Default Weight End UserUsage Weight Save Button 7/10 → 2/10 Filter Button 5/10 → 9/10 Page ModeButton 4/10 → 1/10 Next Page 7/10 → 8/10 Search 3/10 → 9/10 Help Button6/10 → 1/10 Refresh 10/10  → 10/10 

In contrast, Table III shows how the numbers might evolve for anauthoring use case.

TABLE III Authoring Use Case Functions/Areas Default Weight End UserUsage Weight Save Button 7/10 → 2/10 Filter Button 5/10 → 3/10 Page ModeButton 4/10 → 6/10 Next Page 7/10 → 2/10 Search 3/10 → 1/10 Help Button6/10 → 9/10 Refresh 10/10  → 5/10

On a continuing basis, the system might ensure that each time an actionis performed the corresponding weight will be increased. Similarly,during the same period, if an action is not performed the weight may bedecreased.

Once enriched and accurate enough, the updated weights may serve twophases: (1) a tracking usage phase, and (2) an intelligent userinterface phase. During the tracking usage phase, the data may be postedto a software editor as “tracking usage” and help prioritize futureinvestments (such as bug fixes, redesign, content enrichment, etc.)

During the intelligent user interface phase, after the weights of givenactions set changed significantly (e.g., ˜30%), the result of thealgorithm may be proposed to the user. For example, a banner at the topof the application might appear stating that “I can propose you a newlayout of the application based on your personal experience. Would youlike to try it?” According to some embodiments, the proposed automatedlayout may be cancelled or adjusted by the user. Moreover, the changesmay be highlighted in the user interface to help the user betterunderstand where the buttons have moved, which unused functionalitieshave been deleted, etc. By doing so, the algorithm may be enriched bymodifying the weights of impacted areas.

Each area of the user interface may be considered as being composed ofcontainers that are “intelligent.” This means that the layout may varyover time based on the real usage of the user sent by the engine. If thecontainer is a toolbar, for example, the most used actions may bedirectly presented while the less used actions are hidden in a drop-downmenu. Similarly, if the container is a side panel, the most used actionswill be near the top of the panel. If the container is a contextualmenu, the most popular actions will appear higher in the list.

FIGS. 7 through 9 illustrate user interface promotion and/or demotiontechniques according to some embodiments. FIG. 7 shows an example 700 offive possible states and associated weight ranges for user interfacecomponents: hidden 710 (for the least used actions), back 720, default730, front 740, and special 750 (for the most used actions). The actionsfor which the weights evolve will have different impacts on the userinterface. The evaluation may be performed on a use case or contextualbasis, such as during a document creation or “authoring” use case shownin Table III. Note that the system expects the user to interact morewith some action as compared to others, based on their initial defaultweights. As soon as the system collects enough accurate data, thedifference between expected and actual use may be used to update alifecycle of states as appropriate.

For example, if the weight of an action evolved, according to the rangeof usage shown in FIG. 7, its exposition in the UI will be affected. Acomponent's “default location” (e.g., a button or menu item) may movefrom a very visible place (e.g., a flying menu) to a more hidden place(e.g., a sub-panel). Consider, for example, a default 730 action thathas an increase of 70% of usage over what was expected. In this case,the system will set the state to special 750 (because the change iswithin the 60% to 100% range associated with special 750).

FIG. 8 shows an example 800 where the current state is hidden 810 andmight move to default 830 or front 840. For an action currently in thehidden 810 state, an increase of 50% will promote the component to thedefault 830 location. FIG. 9 shows an example 900 where the currentstate is front 940 and might move to back 920, default 830, or special950. For an action currently in the front 940 state, an increase of 50%will promote it to the special 950 state. Based on the new state, thenew targeted location may depend on the actual location. Moreover, eachintelligent user interface area may be responsible to reorganize theaction based on the new states.

Here is an example of an action displayed as a button in an applicationtoolbar by default. For the first occurrence of an update by the system,if the corresponding action weight:

-   -   decreased:        -   more than −30/60%, then its state will be demoted to a            “back” state. In the user interface, it will be moved to an            overflow button (e.g., “ . . . ”).        -   more than −60%, then its state will be demoted to a “hidden”            state. It will be moved to another place, such as a global            menu bar or sub-panel.    -   increased:        -   more than 30%, then its state will be promoted to “front”            state.            -   if currently located in an overflow button, it will be                pulled out of the overflow button.            -   otherwise, it will be placed in front of actions with                lighter weight.        -   more than 60%, then its state will be promoted to “special”            state. The action will be now located into a very visible            toolbar giving a user quick access.

FIG. 10 is a more detailed user interface polymorphism system 1000 inaccordance with some embodiments. The system 1000 includes anintelligent user interface 1010 having a context 1020 with a usage 1050that receives user experience data and default weights. The usage 1050may execute weights 1060, user interface areas 1070, and an optimization1080 to create a new user interface, discover functionality workflowfunctionality, etc. The optimization 1080 may, for example, recognizeusage patterns and propose optimized workflows to the user (and gatheruser feedback). The optimization 1080 may have boundaries. For example,each intelligent area of the user interface may only welcome a subset ofmodifications, such as when there is limited screen space in some areas(e.g., a quick access menu). That is, some other areas should not showhundreds of actions (e.g., to avoid huge right-click menus). Therefore,the optimization 1080 may negotiate the weights 1060 with the userinterface areas 1070. On top the weight 1060 mechanism, the optimization1080 may, in some embodiments, ensure consistency in the application.One goal of the optimization 1080 may be to avoid generating strangelayouts for actions. For example, the optimization 1080 may take careabout functionalities that must always be available (even if they arenot used, such as advertisements, etc.). According to some embodiments,the direct interaction with a user of a conversational bot may enrichthe optimization 1080. If the user is (or is not) satisfied, theoptimization 1080 will refine the strategy. The answers from the usermay also modify the calculated weights 1060 (e.g., to help stabilize thesystem).

FIG. 11 is another user interface polymorphism method according to someembodiments. At S1110, the system may determine context information(create/authoring, consumption, type of document, data source, etc.) tofine tune data triage. At S1120, the current weight for all actions maybe determined (e.g., as predicted by a software developer). At S1130,the system may collect usage data and at S1140 an enrichment delay maylet the system collect additional information (until a sufficient andmeaningful amount has been gathered).

At S1150, the system may propose to discover unused/misusedfunctionalities to user. At S1160, the system may determine deltas ofthe collected data to optimize results and decisions (e.g., to producenew temporary states and communicate the states to intelligent areas toset new user interface locations). The system may also modify the statesif areas reorganized them based on any associated limitations (e.g., apull-down menu grows too large).

At S1170, the system may create a new user interface for the user (andprepare explanations about where the relocated unused functionalitieshave moved, highlight useful functionalities that have not been used,etc.). At S1180, during runtime, if usage patterns have been recognized,the system propose alternatives, advice, and/or optimizations. Thesystem may also measure feedback from end-user. If the user is OK withthe changes at S1190, the method may continue at S1120. If the user isnot OK with the changes at S1190, the system may interpret the intent ofthe user, modify weights, and the method may continue at S1110.

Note that the embodiments described herein may be implemented using anynumber of different hardware configurations. For example, FIG. 12 is ablock diagram of an apparatus or platform 1200 that may be, for example,associated with the system 200 of FIG. 2 (and/or any other systemdescribed herein). The platform 1200 comprises a processor 1210, such asone or more commercially available CPUs in the form of one-chipmicroprocessors, coupled to a communication device 1220 configured tocommunicate via a communication network (not shown in FIG. 12). Thecommunication device 1220 may be used to communicate, for example, withone or more remote user platforms, cloud resource providers, etc. Theplatform 1200 further includes an input device 1240 (e.g., a computermouse and/or keyboard to input rules or logic) and/an output device 1250(e.g., a computer monitor to render a display, transmit recommendations,and/or create reports). According to some embodiments, a mobile deviceand/or PC may be used to exchange information with the platform 1200.

The processor 1210 also communicates with a storage device 1230. Thestorage device 1230 can be implemented as a single database or thedifferent components of the storage device 1230 can be distributed usingmultiple databases (that is, different deployment information storageoptions are possible). The storage device 1230 may comprise anyappropriate information storage device, including combinations ofmagnetic storage devices (e.g., a hard disk drive), optical storagedevices, mobile telephones, and/or semiconductor memory devices. Thestorage device 1230 stores a program 1212 and/or Intelligent UserInterface (“IUI”) platform 1214 for controlling the processor 1210. Theprocessor 1210 performs instructions of the programs 1212, 1214, andthereby operates in accordance with any of the embodiments describedherein. For example, the processor 1210 may collect user experience dataassociated with a user's interactions with the application over time(e.g., user actions, touchscreen interactions, computer mouse clicks,attention information, context information, etc.). The processor 1210may then analyze the user experience data (e.g., looking for mostvisited interface locations, most used actions, infrequently accessedfunctions, common user mistakes, etc.). The processor 1210 may alsoautomatically create a user interface design adjustment based on theanalysis. For example, the user interface design adjustment might beassociated with a menu item, a sub-menu item, an application action, anicon location, adding a display element, removing a display element,etc.

The programs 1212, 1214 may be stored in a compressed, uncompiled and/orencrypted format. The programs 1212, 1214 may furthermore include otherprogram elements, such as an operating system, clipboard application, adatabase management system, and/or device drivers used by the processor1210 to interface with peripheral devices.

As used herein, information may be “received” by or “transmitted” to,for example: (i) the platform 1200 from another device; or (ii) asoftware application or module within the platform 1200 from anothersoftware application, module, or any other source.

In some embodiments (such as the one shown in FIG. 12), the storagedevice 1230 further stores a weights database 1260 and a user experiencedatabase 1300. An example of a database that may be used in connectionwith the platform 1200 will now be described in detail with respect toFIG. 13. Note that the database described herein is only one example,and additional and/or different information may be stored therein.Moreover, various databases might be split or combined in accordancewith any of the embodiments described herein.

Referring to FIG. 13, a table is shown that represents the userexperience database 1300 that may be stored at the platform 1200according to some embodiments. The table may include, for example,entries associated with user interface updates. The table may alsodefine fields 1302, 1304, 1306, 1308, for each of the entries. Thefields 1302, 1304, 1306, 1308 may, according to some embodiments,specify: a user interface identifier 1302, an interface elementidentifier 1304, a current weight 1306, and a proposed adjustment 1308.The user experience database 1300 may be created and updated, forexample, when a user application is launched and/or a user interactswith the application.

The user interface identifier 1302 may be a unique alphanumericidentifier that is associated with a particular application, user,and/or context. The interface element identifier 1304 might identify acomponent of a user interface, such as a button, toolbar, menu item,etc. The current weight 1306 might reflect how often the user interactswith the component (e.g., after starting at an initial default value).The proposed adjustment 1308 might indicate that the component will bepromoted (e.g., made more prominent) or demoted (e.g., made lessprominent).

Thus, embodiments may provide user interface customization in anautomatic and appropriate manner. The proposed systems and methods maysolve user experience problems by learning from user actions.Embodiments may generate a return on investment such as by reducingcomplexity, providing better user profiling, helping to discoverfunctionality, targeting unforeseen use cases, etc.

The following illustrates various additional embodiments of theinvention. These do not constitute a definition of all possibleembodiments, and those skilled in the art will understand that thepresent invention is applicable to many other embodiments. Further,although the following embodiments are briefly described for clarity,those skilled in the art will understand how to make any changes, ifnecessary, to the above-described apparatus and methods to accommodatethese and other embodiments and applications.

Although specific hardware and data configurations have been describedherein, note that any number of other configurations may be provided inaccordance with some embodiments of the present invention (e.g., some ofthe information associated with the databases described herein may becombined or stored in external systems). Moreover, although someembodiments are focused on particular types of applications andservices, any of the embodiments described herein could be applied toother types of applications and services. In addition, the displaysshown herein are provided only as examples, and any other type of userinterface could be implemented. For example, FIG. 14 is a human machineinterface display 1400 according to some embodiments. The display 1400includes a graphical representation 1410 of elements of an intelligentuser interface system. Selection of an element (e.g., via a touchscreenor computer pointer 1420) may result in display of a popup windowcontaining various options (e.g., to adjust rules or logic, assignvarious optimization rules, etc.). The display 1400 may also include auser-selectable “Setup” icon 1490 (e.g., to configure parameters toalter or adjust processes as described with respect any of theembodiments described herein).

The present invention has been described in terms of several embodimentssolely for the purpose of illustration. Persons skilled in the art willrecognize from this description that the invention is not limited to theembodiments described, but may be practiced with modifications andalterations limited only by the spirit and scope of the appended claims.

1. A system associated with a user interface design for an application,comprising: an intelligent user interface platform, including: acomputer processor, and a memory storage device including instructionsthat, when executed by the computer processor, enable the intelligentuser interface platform to: (i) collect user experience data associatedwith a user's interactions with the application over time, the userexperience data comprising information associated with one or more of:attention information indicating where a user is looking whileinteracting with the application, and the user's most common mistakeswhile interacting with the application, (ii) analyze the user experiencedata, and (iii) automatically create a user interface design adjustmentbased on the analysis.
 2. The system of claim 1, wherein the userexperience data is further associated with at least one of: (i) useractions, (ii) touchscreen interactions, (iii) computer mouse clicks,(iv) context information, (v) a document type, or (vi) a time and date.3. The system of claim 1, wherein said analysis is associated with atleast one of: (i) most visited interface locations, (ii) most usedactions, (iii) infrequently accessed functions, (iv) multiple users, or(v) multiple applications.
 4. The system of claim 1, wherein saidanalysis is associated with at least one of: (i) artificialintelligence, and (ii) machine learning.
 5. The system of claim 1,wherein the user interface design adjustment is further associated withat least one of: (i) a menu item, (ii) a sub-menu item, (iii) anapplication action, (iv) an icon location, (v) adding a display element,and (vi) removing a display element.
 6. The system of claim 1, whereinthe intelligent user interface platform is further to propose the userinterface design adjustment to the user.
 7. The system of claim 6,wherein the intelligent user interface platform is further to implementthe user interface design adjustment based on a response to theproposal.
 8. The system of claim 7, wherein the intelligent userinterface platform is further to receive user feedback information aboutthe user interface design adjustment.
 9. The system of claim 1, furtherincluding: an optimization engine to recognize user patterns and proposeoptimized workflows.
 10. A computer-implemented method associated with auser interface design for an application, comprising: collecting, by acomputer processor of an intelligent user interface platform, userexperience data associated with a user's interactions with theapplication over time, the user experience data comprising informationassociated with one or more of: attention information indicating where auser is looking while interacting with the application, and the user'smost common mistakes while interacting with the application; analyzingthe user experience data; and automatically creating a user interfacedesign adjustment based on the analysis.
 11. The method of claim 10,wherein the user experience data is further associated with at least oneof: (i) user actions, (ii) touchscreen interactions, (iii) computermouse clicks, (iv) context information, (v) a document type, or (vi) atime and date.
 12. The method of claim 10, wherein said analysis isassociated with at least one of: (i) most visited interface locations,(ii) most used actions, (iii) infrequently accessed functions, (iv)multiple users, or (v) multiple applications.
 13. The method of claim10, wherein said analysis is associated with at least one of: (i)artificial intelligence, and (ii) machine learning.
 14. The method ofclaim 10, wherein the user interface design adjustment is furtherassociated with at least one of: (i) a menu item, (ii) a sub-menu item,(iii) an application action, (iv) an icon location, (v) adding a displayelement, and (vi) removing a display element.
 15. The method of claim10, wherein the intelligent user interface platform is further topropose the user interface design adjustment to the user.
 16. The methodof claim 15, wherein the intelligent user interface platform is furtherto implement the user interface design adjustment based on a response tothe proposal.
 17. The method of claim 16, wherein the intelligent userinterface platform is further to receive user feedback information aboutthe user interface design adjustment.
 18. The method of claim 10,further including: an optimization engine to recognize user patterns andpropose optimized workflows.
 19. A non-transitory, computer readablemedium having executable instructions stored therein that, when executedby a computer processor cause the processor to perform a methodassociated with a user interface design for an application, the methodcomprising: collecting, by a computer processor of an intelligent userinterface platform, user experience data associated with a user'sinteractions with the application over time, the user experience datacomprising information associated with one or more of: attentioninformation indicating where a user is looking while interacting withthe application, and the user's most common mistakes while interactingwith the application; analyzing the user experience data; andautomatically creating a user interface design adjustment based on theanalysis.
 20. The non-transitory, computer readable medium of claim 19,wherein the user experience data is further associated with at least oneof: (i) user actions, (ii) touchscreen interactions, (iii) computermouse clicks, (iv) context information, (v) a document type, or (vi) atime and date.